package tarea2.managedbeans;

import Negocio.InterfazNegocio;
import entidades.HistoriaClinica;
import entidades.Tratamiento;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

@Named
@ApplicationScoped
public class ControlHistoriaClinica {

    private int enfermedad;
    private int paciente;
    private String nombreT, descripcionT;
    @Inject
    private InterfazNegocio negocio;
    @Inject
    private UsuarioMBean usuario;

    public ControlHistoriaClinica() {

    }

    public String modificarHClinica() {
        if (nombreT.equals("") || descripcionT.equals("")) {
            FacesContext ctx = FacesContext.getCurrentInstance();
            ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Faltan datos", "Faltan datos"));
            return null;
        }
        InterfazNegocio.Error e;
        e = negocio.modificar_Historia_Clinica(negocio.getPacientes().get(paciente),
                "0", negocio.getEnfermedad().get(enfermedad), new Tratamiento(nombreT, descripcionT),
                negocio.getMedicos().get(pacienteActual()).getDni());

        if (e == InterfazNegocio.Error.ERROR_ENFERMEDAD_REPETIDA) {
            FacesContext ctx = FacesContext.getCurrentInstance();
            ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Enfermedad ya existe en la historia", "Enfermedad ya existe en la historia"));
        } else {
            FacesMessage fm = new FacesMessage("Añadido correctamente");
            FacesContext.getCurrentInstance().addMessage("mensaje", fm);
        }
        return null;

    }

    public void bloquear() {
        negocio.bloquear_Historia_Clinica(negocio.getPacientes().get(paciente), true);
        FacesMessage fm = new FacesMessage("Historia clinica bloqueada");
        FacesContext.getCurrentInstance().addMessage("mensaje", fm);
    }

    public void desbloquear() {
        negocio.bloquear_Historia_Clinica(negocio.getPacientes().get(paciente), false);
        FacesMessage fm = new FacesMessage("Historia clinica Desbloqueada");
        FacesContext.getCurrentInstance().addMessage("mensaje", fm);
    }

    public List<HistoriaClinica> getHistoriaClinica() {
        return negocio.getHistoriaClinica();
    }

    public int pacienteActual() {
        for (int i = 0; i < negocio.getPacientes().size(); i++) {
            if (usuario.getUsuario().equals(negocio.getPacientes().get(i))) {
                return i;
            }
        }
        return 0;
    }

    public String re() {
        return null;
    }

    public int getEnfermedad() {
        return enfermedad;
    }

    public void setEnfermedad(int enfermedad) {
        this.enfermedad = enfermedad;
    }

    public int getPaciente() {
        return paciente;
    }

    public void setPaciente(int paciente) {
        this.paciente = paciente;
    }

    public String getNombreT() {
        return nombreT;
    }

    public void setNombreT(String nombreT) {
        this.nombreT = nombreT;
    }

    public String getDescripcionT() {
        return descripcionT;
    }

    public void setDescripcionT(String descripcionT) {
        this.descripcionT = descripcionT;
    }

    public InterfazNegocio getNegocio() {
        return negocio;
    }

    public void setNegocio(InterfazNegocio negocio) {
        this.negocio = negocio;
    }

    public UsuarioMBean getUsuario() {
        return usuario;
    }

    public void setUsuario(UsuarioMBean usuario) {
        this.usuario = usuario;
    }
}
